package net.qiqbframework.loadhanding;

import net.qiqbframework.messaging.annotation.MessageExecutableHandler;

import java.util.Optional;

public interface LoadExecutableHandler extends MessageExecutableHandler {

    /**
     * 业务id
     *
     * @return
     */
    Optional<String> bizIdentifierNaming();

    String aggregateNaming();

    /**
     * 聚合类型
     *
     * @return
     */
    Class<?> aggregateType();

    /**
     * 业务ID类型。
     *
     * @return
     */
    Class<?> bizIdentifierType();

    /**
     * 是否支持预加载
     *
     * @return
     */
    default boolean supportPerBatch() {
        return false;
    }

}
